package com.charging.dao;

import com.charging.entity.ChargingPile;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ChargingPileDao {
    List<ChargingPile> findAll();
    ChargingPile findById(Long id);
    void insert(ChargingPile pile);
    void update(ChargingPile pile);
    void delete(Long id);
    /**
     * 根据地理位置范围查询充电桩
     * @param minLat 最小纬度
     * @param maxLat 最大纬度
     * @param minLng 最小经度
     * @param maxLng 最大经度
     * @return 充电桩列表
     */
    List<ChargingPile> selectByLocationRange(
            @Param("minLat") Double minLat,
            @Param("maxLat") Double maxLat,
            @Param("minLng") Double minLng,
            @Param("maxLng") Double maxLng);

    /**
     * 查询所有充电桩位置信息
     * @return 充电桩列表(只包含位置相关信息)
     */
    List<ChargingPile> selectAllLocations();

    long count();

    List<ChargingPile> findAllForHome();

    int countAvailablePiles();
}